A computer network is simply a group of two or more computer or computing devices that are linked together. A personal computer (“PC”) or server is generally regarded as a traditional computing device, but other computing devices such as embedded devices (e.g., personal digital assistants (“PDAs”), mobile phones, routers, switches, etc.) may also be included as part of a computer network. Many types of networks exist, but the most common types of networks are Local-Area Networks (LANs) and Wide-Area Networks (WANs). In a LAN, the computing devices are connected within a “local” area, for example, a home or office. A LAN generally connects less than 100 network nodes. In a WAN, the interconnected computers are generally farther apart and are connected via telephone/communication lines, radio waves, or other means of communication. A Metropolitan Area Network (“MAN”) may include hundreds or even thousands of interconnected computing devices. There are also other network devices, for example, bridges, routers and switches, which may be used to link different networks or network segments into a larger network with more resources.
In a heterogeneous environment, such as a computer network, it is essential that each of the interconnected devices be able to receive information from and transmit information to the other devices in the network. The information transferred between network devices is generally referred to as data packets or packets and this transfer of information is generally referred to as packet flow. In response to the need for the different devices to communicate, standards bodies and other entities have developed numerous protocols for data packet flow over a network. A protocol specifies a common set of rules for packet format and packet flow, allowing a variety of devices to communicate. A layering model is the most common approach to dividing a communication model into subparts. The idea behind layering is that each layer is responsible for providing a service to the layer above by using the services of the layer below. Each layer communicates with its peer layer in another network node through the use of the protocol.
An example of a communication model using the layering approach is the OSI model which may include layer 1 (“L1”) which is sometimes referred to as the physical layer, layer 2 (“L2”) which is sometimes referred to as the data link layer and layer 3 (“L3”) which is sometimes referred to as the network layer. The current BSD OS and its variant operating systems do not separate L2 from L3, and do not separate L3 protocols, e.g., Internet Protocol version 4 (“IPv4”) and Internet Protocol version 6 (“IPv6”), in terms of initialization, operation, runtime control/management and shutdown. As such, the current operating systems present difficulties in implementing some, or portions of some Management Information Base (MIB) objects using the Simple Network Management Protocol (SNMP) and in implementing fine-grained control of L2 and the individual L3 protocols. In addition, the internal code and data structure dependencies increase the memory footprint of the final system on both embedded and non-embedded devices. Since embedded devices generally have less available memory, this impact is more visible on embedded devices. Device performance is also downgraded on a physical network that carries both IPv4 and IPv6 traffic due to the operational dependencies, i.e., the operation of one logical network implies the concurrent operation of the other logical network.